package com.zhb.austapp.activity;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;

import com.zhb.austapp.MainActivity;
import com.zhb.austapp.R;
import com.zhb.austapp.adapter.GuideAdapter;

import java.util.ArrayList;
import java.util.List;

public class GuideActivity extends AppCompatActivity {

    private ViewPager vp;
    private List<ImageView> imageViews;
    private int[] imgs= {R.mipmap.y0,R.mipmap.y1,R.mipmap.y2,R.mipmap.y3};
    private Button btn;
    private ImageView[] dotViews;
    private GuideAdapter adapter;


    @Override
    protected void onCreate( Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_guide);
        vp= findViewById(R.id.guide_pic);
        btn= findViewById(R.id.guide_btnStart);

        //初始化图片
        initImgs();
        //初始化底部圆点指示器
        initDots();
        adapter= new GuideAdapter(imageViews);
        vp.setAdapter(adapter);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //保存第一次打开App的标志位isFirst，下次就不会显示引导页了。
                SharedPreferences.Editor editor= getSharedPreferences("data", MODE_PRIVATE).edit();
                editor.putString("isFirst", "1");
                editor.commit();
                //打开MainActivity
                Intent intent= new Intent(GuideActivity.this, LoginActivity.class);
                startActivity(intent);
                finish();//关闭当前引导页面
            }
        });
        //当ViewPager变化时，就是用户左右滑动引导图片时。
        vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }
            @Override
            public void onPageSelected(int position) { //position表示当前的页面位置
                for (int i= 0; i< dotViews.length; i++){
                    if (position== i){ //当前页面的圆点显示蓝色
                        dotViews[i].setImageResource(R.drawable.guide_selector);
                    }else { //非当前页面的圆点显示白色
                        dotViews[i].setImageResource(R.drawable.guide_white);
                    }
                    //如果是最后一张引导页面图片，则显示开始体验按钮。否则不显示。
                    if (position== dotViews.length- 1){
                        btn.setVisibility(View.VISIBLE);
                    }else {
                        btn.setVisibility(View.GONE);
                    }
                }
            }
            @Override
            public void onPageScrollStateChanged(int state) {
            }
        });
    }
    /**
     * 初始化底部圆点指示器
     */
    private void initDots() {
        LinearLayout layout= findViewById(R.id.guide_layout); //圆点在线性不居中显示。
        LinearLayout.LayoutParams params= new LinearLayout.LayoutParams(20, 20);
        params.setMargins(10, 0, 10, 0);
        dotViews= new ImageView[imgs.length];
        for (int i= 0; i< imageViews.size(); i++){ //几张图片显示几个圆点。
            ImageView imageView= new ImageView(this);
            imageView.setLayoutParams(params);
            imageView.setImageResource(R.drawable.guide_white);//默认圆点显示为白色
            if (i== 0){ //默认第一个圆点显示蓝色，其他显示白色
                imageView.setImageResource(R.drawable.guide_selector);
            }else{
                imageView.setImageResource(R.drawable.guide_white);
            }
            dotViews[i]= imageView;
            final int finalI = i;
            dotViews[i].setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    vp.setCurrentItem(finalI);
                }
            });
            layout.addView(imageView);
        }
    }
    /**
     * 初始化图片，把图片添加到列表中
     */
    private void initImgs() {
        ViewPager.LayoutParams params= new ViewPager.LayoutParams();
        imageViews= new ArrayList<ImageView>();
        for (int i= 0; i< imgs.length; i++){
            ImageView imageView= new ImageView(this);
            imageView.setLayoutParams(params);
            imageView.setImageResource(imgs[i]);
            imageView.setScaleType(ImageView.ScaleType.FIT_XY);
            imageViews.add(imageView);
        }
    }
}